package com.bainuo.doctor.common.image_support.imghandle.uploader;

import com.bainuo.doctor.common.network_engine.UpFileServerApi;

/**
 * Created by bainuo on 2017/2/14.
 */

public interface IFileUpload {

//    void setUploadType(String type);

    /**
     * 添加上传文件任务
     *
     * @param task
     * @return
     */
    boolean uploadFile(UploadTask task);

    /**
     * 取消请求
     *
     * @param id
     * @return
     */
    boolean cancelRequest(String id);

    /**
     * 取消所有请求
     *
     * @return
     */
    boolean cancelAllRequest();

//    /**
//     * 重试
//     * @return
//     */
//    boolean retryRequest(UploadTask task);

    /**
     * 上传文件监听
     *
     * @param listener
     */
    void setUploadListener(Listener listener);

    void setUploadApi(UpFileServerApi uploadApi);

    interface Listener {
        /**
         * 文件上传完成
         */
        void onUploadFinish(UploadTask task);

        /**
         * 文件上传成功后 url返回
         */
        void onUploadSuccess(UploadTask task);

        /**
         * 文件上传失败
         */
        void onUploadFailed(UploadTask task);

        /**
         * 文件上传进度变更
         */
        void onUploadProgress(UploadTask task);
    }
}
